import { commonDefinition } from '../store'
import { deCodeApi } from '../utils'

export default function interceptor(to, _, next) {
    // 修改手机系统栏背景色
    if(window.plus){
        if (to.path === '/login' || to.path === '/') {
            plus.navigator.setStatusBarBackground('#f5f5f5')
            plus.navigator.setStatusBarStyle('dark')
        } else {
            plus.navigator.setStatusBarBackground('#fa541c')
            plus.navigator.setStatusBarStyle('light')
        }
    }else{
        document.addEventListener('plusready', function () {
            if (to.path === '/login' || to.path === '/') {
                plus.navigator.setStatusBarBackground('#f5f5f5')
                plus.navigator.setStatusBarStyle('dark')
            } else {
                plus.navigator.setStatusBarBackground('#fa541c')
                plus.navigator.setStatusBarStyle('light')
            }
        }, false);
    }
    
    //判断是否去往需要登录拦截的界面
    if (to.meta.nologin) {
        next()
        return
    }
    // 获取登录token标识，判断是否存在
    let cache = sessionStorage.getItem('login-flag')
    if (!cache) {
        next('/login')
        return
    }
    // 如果存在则进行解密并判断是否在有效期内
    try {
        cache = deCodeApi(cache)
        if (!cache) {
            next('/login')
            return
        }
        cache = cache.split('---')
        /** 保证token数据的时效性 */
        let passTime = Date.now() - cache[1]
        if (passTime > 2 * 60 * 60 * 1000) {
            next('/login')
            return
        }
        /** 保证token的正确性--读取sessionStorage和store中的token数据进行对比 */
        let token = commonDefinition().getToken
        if (cache[0] !== token) {
            next('/login')
            return
        }
        next()
    } catch(e) {
        console.log('------------------- token有问题')
        next('/login')
    }
}